#ifndef MODEL_INVALID_HIERARCHY_OPERATION_ERROR_HPP
#define MODEL_INVALID_HIERARCHY_OPERATION_ERROR_HPP

#include "Model/ModelConfig.hpp"
#include <stdexcept>

namespace Model
{
	
/// @ingroup Model
/// @brief It is thrown when an operation in a hierarchy of objects is invalid (e.g moving a child object as a parent 
///		to its own parent).
class MODEL_API InvalidHierarchyOperationError: public std::domain_error
{
public:
	/// @brief It initializes the exception.
	/// @param message the message of the exception.
	InvalidHierarchyOperationError( const std::string& message = std::string());
};

} // namespace Model

#endif // MODEL_INVALID_HIERARCHY_OPERATION_ERROR_HPP
